package org.lql.chaos.kafka.example.partition;

import org.apache.kafka.common.Cluster;

/**
 * @author: liangqinglong
 * @date: 2025-08-10 13:10
 * @description: 自定义分区策略
 **/
public interface CustomPartitionStrategy {

	/**
	 * 策略名称，唯一标识
	 */
	String getName();

	/**
	 * 自定义分区策略
	 *
	 * @param topic      主题
	 * @param key        键
	 * @param keyBytes   键的字节数组
	 * @param value      值
	 * @param valueBytes 值的字节数组
	 * @param cluster    集群信息
	 * @return 分区编号
	 */
	int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster);
}
